XAML 热重载疑难解答 | 您所在的位置:网站首页 › visual studio此应用可能无法正常工作 › XAML 热重载疑难解答 |
XAML 热重载疑难解答
项目
06/08/2023
适用于: Visual Studio 2019 及更高版本 此故障排除指南包含详细说明,应解决阻止 XAML 热重载正常工作的大多数问题。 WPF 和 UWP 应用支持 XAML 热重载。 有关操作系统和工具要求的详细信息,请参阅使用 XAML 热重载编写和调试正在运行的 XAML 代码。 如果热重载不可用如果在调试应用时在应用内工具栏中看到消息 Hot Reload is not available ,请按照本文中所述的说明解决问题。 验证是否启用了 XAML 热重载默认情况下,在 Visual Studio 2019 及更高版本中启用此功能。 开始调试应用时,请确保看到应用内工具栏,该工具栏确认 XAML 热重载可用。 Visual Studio 2019:
Visual Studio 2022:
如果未看到应用内工具栏,请从 Visual Studio 菜单栏中选择“调试>选项>XAML 热重载”。 接下来,在“选项”对话框中,确保选中“启用 XAML 热重载”选项。 验证是否使用“开始调试”而不是“附加到进程” XAML 热重载要求在应用程序启动时将环境变量ENABLE_XAML_DIAGNOSTICS_SOURCE_INFO设置为 1 。 Visual Studio 在“调试开始调试>” (或 F5) 命令中自动设置值。 如果要改为将 XAML 热重载与“调试>附加到进程”命令一起使用,请自行设置环境变量。 注意 若要设置环境变量,请使用“开始”按钮搜索 环境变量 ,然后选择 “编辑系统环境变量”。 在打开的对话框中,选择 “环境变量”,然后将其添加为用户变量,并将值设置为 1。 若要清理,请在完成调试后删除 变量。 验证 MSBuild 属性是否正确默认情况下,源信息包含在调试配置中。 它由项目文件中的 MSBuild 属性控制, (如 *.csproj) 。 对于 WPF,属性为 XamlDebuggingInformation,必须将其设置为 True。 对于 UWP,属性为 DisableXbfLineInfo,必须将其设置为 False。 例如: Wpf: True UWP: False 验证是否使用了正确的生成配置名称必须手动设置正确的 MSBuild 属性以支持 XAML 热重载 (请参阅上一节) ,或者必须使用默认生成配置名称 (调试) 。 如果未正确设置 MSBuild 属性,则自定义生成配置名称将不起作用,发布版本也不起作用。 确保程序未以提升状态运行以管理员身份运行提升/运行的应用中不支持 XAML 热重载。 验证 XAML 文件是否没有错误如果 XAML 文件在错误列表中显示错误,则 XAML 热重载可能无法正常工作。 启用更彻底的搜索以更新 Visual Studio 2022 中的资源引用和样式将 XAML_HOT_RELOAD_ACCURACY_OVER_PERF 环境变量设置为 1 可以进行更广泛的搜索,以更新 WPF 应用程序中的资源引用和样式。 请注意,某些应用程序(例如使用第三方工具包的应用程序)可能会遇到 XAML 热重载的严重延迟。 发生延迟时,编辑器状态栏中会显示热重载进度计时器。 已知限制 以下是 XAML 热重载的已知限制。 若要解决遇到的任何限制,只需停止调试器,然后完成操作。 限制 Wpf UWP 注意 在应用运行时将事件连接到控件 不支持 不支持 请参阅错误: 确保事件失败。 在 WPF 中,可以引用现有的事件处理程序。 在 UWP 应用中,不支持引用现有事件处理程序。 在资源字典中创建资源对象,例如在应用的 Page/Window 或 App.xaml 中创建资源对象 从 Visual Studio 2019 版本 16.2 及更高版本开始受支持 支持 示例: - 将 添加到SolidColorBrush资源字典中以用作 StaticResource。注意:使用 XAML 热重载时,可以应用/使用写入资源字典的静态资源、样式转换器和其他元素。 仅支持创建资源。 - 更改资源字典 Source 属性。 在应用运行时向项目添加新控件、类、窗口或其他文件 不支持 不支持 无 管理 NuGet 包 (添加/删除/更新包) 不支持 不支持 无 更改使用 {x:Bind} 标记扩展的数据绑定 不适用 从 Visual Studio 2019 开始支持 这需要Windows 10版本 1809 (内部版本 10.0.17763) 及更高版本。 在 Visual Studio 2017 或早期版本中不受支持。 更改 x:Uid 指令 不适用 不支持 无 使用多个进程 支持 支持 在 Visual Studio 2019 版本 16.6 及更高版本中受支持。 在主题\generic.xaml 中编辑样式 不支持 不支持 XAML 热重载创建新样式;原始样式是密封的。 平台在将 generic.xaml 中的样式应用于控件后缓存这些样式,这使得它们无法进行替换。 错误消息使用 XAML 热重载时,可能会遇到以下错误。 错误消息 说明 确保事件失败 错误指示你正在尝试将事件连接到其中一个控件,应用程序运行时不支持该控件。 XAML 热重载不支持此更改,在调试会话期间不会应用此更改。 错误指示 XAML 热重载不支持你尝试进行的更改。 停止调试会话,进行更改,然后重启调试会话。如果发现想要看到受支持的不受支持的方案,请使用 “建议功能 ”选项告知我们。 |
CopyRight 2018-2019 实验室设备网 版权所有 |